Page({
  data: {
    likesList: [],
    isLoading: true,
    errorMsg: "",
    debugInfo: "",
    targetUserId: null // 新增：存储跳转传入的目标用户ID
  },

  onLoad(options) {
    console.log("===== 点赞页面加载 =====");
    this.logDebug("页面开始加载，解析传入参数");

    // 1. 从跳转参数中获取目标用户ID（关键修改）
    const { userId } = options;
    if (!userId) {
      this.setData({
        isLoading: false,
        errorMsg: "用户ID无效，请重新跳转"
      });
      this.logDebug("跳转参数中未获取到userId");
      return;
    }

    // 2. 验证传入的userId格式
    if (isNaN(Number(userId)) || Number(userId) <= 0) {
      this.setData({
        isLoading: false,
        errorMsg: "用户ID格式错误"
      });
      this.logDebug(`传入的userId格式无效: ${userId}`);
      return;
    }

    // 3. 保存目标用户ID并加载数据
    this.setData({ targetUserId: userId });
    this.logDebug(`已获取目标用户ID: ${userId}，准备调用getLikesData`);
    this.getLikesData();
  },

  // 日志记录与调试信息展示
  logDebug(message) {
    const time = new Date().toLocaleTimeString();
    const newDebug = `[${time}] ${message}\n${this.data.debugInfo}`;
    this.setData({ debugInfo: newDebug });
    console.log(`[调试] ${message}`);
  },

  // 检查网络状态（逻辑不变）
  checkNetwork() {
    return new Promise((resolve) => {
      wx.getNetworkType({
        success: (res) => {
          const networkType = res.networkType;
          const isConnected = networkType !== 'none';
          this.logDebug(`网络类型: ${networkType} (${isConnected ? '已连接' : '未连接'})`);
          resolve(isConnected);
        },
        fail: () => {
          this.logDebug('获取网络状态失败');
          resolve(false);
        }
      });
    });
  },

  // 获取点赞数据（使用跳转传入的targetUserId）
  getLikesData() {
    this.setData({ isLoading: true, errorMsg: "" });
    this.logDebug("开始执行getLikesData");

    // 步骤1: 检查网络连接
    this.checkNetwork().then((isConnected) => {
      if (!isConnected) {
        this.setData({
          isLoading: false,
          errorMsg: "网络未连接，请检查网络设置"
        });
        return;
      }

      // 步骤2: 获取目标用户ID（从data中获取，而非缓存/全局）
      const authorId = this.data.targetUserId;
      this.logDebug(`使用目标用户ID请求数据: ${authorId}`);

      // 步骤3: 准备请求参数
      const url = `http://localhost:8080/userr/likes/author/${authorId}`;
      this.logDebug(`准备请求接口: ${url}`);

      // 步骤4: 提示开发者工具配置
      this.logDebug('提示: 若请求失败，可在开发者工具中开启"不校验合法域名"选项');

      // 步骤5: 发起请求
      wx.request({
        url: url,
        method: "GET",
        header: {
          'Content-Type': 'application/json',
          'Accept': 'application/json',
          'Authorization': `Bearer ${wx.getStorageSync('token') || 'undefined'}`
        },
        timeout: 10000,
        success: (res) => {
          this.logDebug(`请求成功，状态码: ${res.statusCode}`);
          this.logDebug(`响应数据: ${JSON.stringify(res.data).substring(0, 200)}...`);

          if (res.statusCode === 200) {
            // 处理可能的不同数据结构
            const responseData = Array.isArray(res.data) 
              ? res.data 
              : (res.data?.data || res.data?.list || []);

            if (Array.isArray(responseData)) {
              if (responseData.length === 0) {
                this.setData({
                  likesList: [],
                  isLoading: false,
                  errorMsg: "暂无点赞记录"
                });
              } else {
                const formattedList = responseData.map(item => ({
                  id: item.likerUid || item.id,
                  avatar: item.avatarUrl ? `https://gzq123.oss-cn-beijing.aliyuncs.com/${item.avatarUrl}` : '/images/116.png', // 补全图片路径
                  username: item.nickname || '未知用户',
                  desc: `赞了你的${item.targetType === 1 ? '作品' : '内容'} ${this.formatTime(item.createTime)}`,
                  cover: item.targetImage ? `https://gzq123.oss-cn-beijing.aliyuncs.com/${item.targetImage}` : '/images/default-cover.png' // 补全图片路径
                }));
                this.setData({
                  likesList: formattedList,
                  isLoading: false,
                  errorMsg: ""
                });
              }
            } else {
              this.setData({
                isLoading: false,
                errorMsg: "数据格式错误，预期为数组"
              });
              this.logDebug(`数据格式错误: ${typeof responseData}`);
            }
          } else if (res.statusCode === 404) {
            this.setData({
              isLoading: false,
              errorMsg: "请求的资源不存在 (404)"
            });
          } else if (res.statusCode === 401) {
            this.setData({
              isLoading: false,
              errorMsg: "登录已过期，请重新登录 (401)"
            });
            wx.removeStorageSync('token');
          } else if (res.statusCode >= 500) {
            this.setData({
              isLoading: false,
              errorMsg: `服务器错误 (${res.statusCode})，请稍后重试`
            });
          } else {
            this.setData({
              isLoading: false,
              errorMsg: `请求失败 (${res.statusCode})`
            });
          }
        },
        fail: (err) => {
          this.logDebug(`请求失败: ${JSON.stringify(err)}`);
          let errorMsg = "请求失败，请稍后重试";
          
          if (err.errMsg.includes('timeout')) {
            errorMsg = "请求超时，请检查服务器是否正常运行";
          } else if (err.errMsg.includes('fail to connect')) {
            errorMsg = "无法连接到服务器，请检查地址是否正确";
          } else if (err.errMsg.includes('invalid url')) {
            errorMsg = "接口地址无效，请检查URL格式";
          } else if (err.errMsg.includes('no permission')) {
            errorMsg = "没有权限访问，请开启域名校验豁免";
          }
          
          this.setData({
            isLoading: false,
            errorMsg: errorMsg
          });
        },
        complete: () => {
          wx.hideLoading();
          this.logDebug("请求流程完成");
        }
      });
    });
  },

  // 时间格式化（逻辑不变）
  formatTime(timeStr) {
    if (!timeStr) return "未知时间";
    try {
      let date;
      if (timeStr.includes('T')) {
        date = new Date(timeStr.replace('T', ' '));
      } else {
        date = new Date(timeStr);
      }
      
      if (isNaN(date.getTime())) {
        return "格式错误";
      }
      
      const month = String(date.getMonth() + 1).padStart(2, '0');
      const day = String(date.getDate()).padStart(2, '0');
      return `${month}-${day}`;
    } catch (e) {
      this.logDebug(`时间格式化失败: ${e.message}`);
      return "解析失败";
    }
  },

  // 重试按钮（逻辑不变）
  onRetry() {
    this.logDebug("用户点击重试按钮");
    this.getLikesData();
  },
   // 跳转用户中心（携带目标用户ID）
   gotoUserCenter(e) {
    const userId = e.currentTarget.dataset.userid;
    console.log('要传递的userId：', userId);
    wx.navigateTo({ url: `/my/pages/user-detail/user-detail?userId=${userId}` });
  },

    // 跳转作品详情页
gotoWorkDetail(e) {
  // 1. 获取传递的作品ID和类型
  const workId = e.currentTarget.dataset.workid;
  
  //const targetType = e.currentTarget.dataset.targettype || 1; // 默认作品类型
  //this.logDebug(`尝试跳转作品详情，workId: ${workId}, 类型: ${targetType}`);

  // 2. 校验作品ID是否有效
  if (!workId || (typeof workId !== 'string' && typeof workId !== 'number') || workId.toString().trim() === '') {
    wx.showToast({
      title: '作品ID无效',
      icon: 'error',
      duration: 2000
    });
    this.logDebug(`跳转失败：无效的workId=${workId}`);
    return;
  }

  // 3. 获取当前登录用户ID（作为作者ID参数传递，可选）
  const app = getApp();
  const authorId = app.globalData?.userInfo?.id || '';
  console.log("authorId:",authorId);
  console.log("workId:",workId);
  wx.navigateTo({ 
    url: `/find/pages/findDetail/findDetail?id=${workId}&authorId=${authorId}`
    });
},

  onBack() {
    wx.navigateBack();
  }
});